package gulimall.exception;

/**
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景，最后三位表示错误码。例如：10001。10:通用 000:系统未知异常
 * 3. 维护错误码后需要维护错误描述，将他们定义为枚举形式
 * 错误码列表：
 * 10: 通用
 * 001：参数格式校验
 * 002：验证码获取频率过高
 * 003：验证码验证异常
 * 11: 商品
 * 12: 订单
 * 13: 购物车
 * 14: 物流
 * <p>
 * 定义gulimall异常和异常状态码
 *
 * @author HLF
 * @date 2022/5/1 15:24
 */
public enum BizCodeEnum {
    UNKNOWN_EXCEPTION(10000, "未知异常"),
    VALID_EXCEPTION(10001, "参数格式校验失败"),

    CODE_TOMUCH_EXCEPTION(10002, "验证码获取频率过高"),

    CODE_VALID_EXCEPTION(10003, "短信验证码校验异常"),

    USER_EXIST_EXCEPTION(10004, "用户名已存在"),
    PHONE_EXIST_EXCEPTION(10005, "手机号已存在"),

    MEMBER_LOGIN_EXCEPTION(10006, "账号或密码错误"),
    PRODUCT_UP_EXCEPTION(11000, "商品上架异常");


    private final int code;
    private final String message;

    BizCodeEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}
